Incremental Computation of Static Single Assignment Form
نویسندگان
چکیده
Abs t r ac t . Static single assignment (SSA) form is an intermediate representation that is well suited for solving many data flow optimization problems. However, since the standard algorithm for building SSA form is exhaustive, maintaining correct SSA form throughout a multi-pass compilation process can be expensive. In this paper, we present incremental algorithms for restoring correct SSA form after program transformations. First, we specify incremental SSA algorithms for insertion and deletion of a use/definition of a variable, and for a large class of updates on intervals. We characterize several cases for which the cost of these algorithms will be proportional to the size of the transformed region and hence potentially much smaller than the cost of the exhaustive algorithm. Secondly, we specify customized SSA-update algorithms for a set of common loop transformations. These algorithms are highly efficient: the cost depends at worst on the size of the transformed code, and in many cases the cost is independent of the loop body size and depends only on the number of loops.
منابع مشابه
Interprocedural Static Single Assignment Form in Bauhaus
In this paper we describe interprocedural static single assignment form (ISSA) with optimizations as implemented in the Bauhaus project. We explain our framework which uses an abstract program representation enabling us to use different pointer analyses ranging from fast but imprecise to slow but precise ones. Our implementation includes the computation of (may and must) side effects and optimi...
متن کاملLoop and Address Code Optimization for Digital Signal Processors
This paper presents a new DSP-oriented code optimization method to enhance performance by exploiting the specific architectural features of digital signal processors. In the proposed method, a source code is translated into the static single assignment form while preserving the highlevel information related to loops and the address computation of array accesses. The information is used in gener...
متن کاملModeling Data-Parallel Programs with the Alignment-Distribution Graph
We present an intermediate representation of a program called the Alignment-Distribution Graph that exposes the communication requirements of the program. The representation exploits ideas developed in the static single assignment form of programs, but is tailored for communication optimization. It serves as the basis for algorithms that map the array data and program computation to the nodes o...
متن کاملThe Static Single Assignment Form and its Computation
The Static Single Assignment (SSA) form of programs is a commonly used intermediate representation of programs in optimizing compilers. The key step in converting a program to SSA form is called-placement. Cytron et al used dominance frontiers to design a-placement algorithm whose running time grows quadratically with the size of the control ow graph of the program. Recent eeorts by the compile...
متن کاملJava Compilation for Multi-threaded Architectures
This paper outlines the design of a compilation framework for applications in embedded systems programmed in Java and targeted at multi-threaded architectures. These architec-tures have multiple Thread Processing Units (TPUs) to support loop-level parallelism, where each TPU employs instruction-level parallelism, and data and control speculation techniques to improve performance. The paper desc...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1996